﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;
using DevComponents.DotNetBar.Controls;
using System.Data;

namespace BUL
{
    // anh dung Partial la de anh khong phai khai bao lai bu su dung trong main lan nua.
    // tuong tu cac form khac em cu coppy tu thang BoPhan_business nay ma viet thoi
   // => trong main co the goi luon.
    //ok. Khi nào làm tới cái load ảnh lên frm e lai phải hỏi vì trong C# ko biết có giống vb ko
    // Uh.

    public partial class Business
    {      
        public void GetAllBoPhan(string strTimkiem, DataGridViewX dataGridViewX )
        {
            if(dataGridViewX.RowCount>0)
                dataGridViewX.Rows.Clear();
            using (var dal = new QuanLyBanHangEntities1())
            {
                var listResult = dal.tblBoPhans.Where(x => x.TenBP.Contains(strTimkiem)).OrderBy(x => x.TenBP);
                int i = 0;
                foreach (var item in listResult)
                {
                    dataGridViewX.Rows.Add();
                    dataGridViewX.Rows[i].Cells[0].Value = "N";
                    dataGridViewX.Rows[i].Cells[1].Value = item.MaBP;
                    dataGridViewX.Rows[i].Cells[2].Value = item.TenBP;
                    dataGridViewX.Rows[i].Cells[3].Value = item.GhiChu;
                    i++;
                }
            }
        }

        public tblBoPhan GetBoPhanById(string mabophan)
        {
            return _dal.tblBoPhans.Where(x => x.MaBP == mabophan).FirstOrDefault();
        }

        public void InsertBoPhan(tblBoPhan bophan)
        {
            _dal.tblBoPhans.AddObject(bophan);
            _dal.SaveChanges();
        }

        public void UpdateBoPhan(string maBoPhanCu,tblBoPhan bophan)
        {
            // dal.tblBoPhans.Where(x => x.MaBP == maBoPhanCu) : lấy ra toàn bộ các bản ghi thỏa mãn where
            //FirstOrDefault() lấy ra bản ghi đầu tiên trong danh sách thỏa mãn where, nếu không có kết quả sẽ là null
            var BPUpdate = _dal.tblBoPhans.Where(x => x.MaBP == maBoPhanCu).FirstOrDefault();
            BPUpdate.MaBP = bophan.MaBP;
            BPUpdate.TenBP = bophan.TenBP;
            BPUpdate.GhiChu = bophan.GhiChu;
            _dal.SaveChanges();
        }

        public void DeleteBP(IEnumerable<string> mabophans)
        {
            var listDelete = _dal.tblBoPhans.Where(x => mabophans.Contains(x.MaBP));
            foreach (var tblbophan in listDelete)
            {
                _dal.tblBoPhans.DeleteObject(tblbophan);
            }
            _dal.SaveChanges();
        }

        public tblBoPhan BuildBP(string maBP, string tenBP, string ghichu)
        {
            return new tblBoPhan { MaBP = maBP, TenBP = tenBP,GhiChu = ghichu };
        }
    }
}
